home *** CD-ROM | disk | FTP | other *** search
/ IRIX Installation Tools & Overlays 2002 November / SGI IRIX Installation Tools & Overlays 2002 November - Disc 4.iso / dist / motif21_dev.idb / usr / Motif-2.1 / include / Xm / DropSMgrP.h.z / DropSMgrP.h
C/C++ Source or Header  |  2002-10-15  |  8KB  |  271 lines

  1. /* 
  2.  *  @OSF_COPYRIGHT@
  3.  *  COPYRIGHT NOTICE
  4.  *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
  5.  *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
  6.  *  the full copyright text.
  7. */ 
  8. /* 
  9.  * HISTORY
  10. */ 
  11. /*   $XConsortium: DropSMgrP.h /main/11 1995/07/14 10:31:14 drk $ */
  12. /*
  13. *  (c) Copyright 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
  14.  
  15. #ifndef _XmDropSMgrP_h
  16. #define _XmDropSMgrP_h
  17.  
  18. #include <Xm/XmP.h>
  19. #include <Xm/DropSMgr.h>
  20.  
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24.  
  25. typedef void (*XmDSMCreateInfoProc)
  26.     (XmDropSiteManagerObject, Widget, ArgList, Cardinal);
  27. typedef void (*XmDSMDestroyInfoProc)
  28.     (XmDropSiteManagerObject, Widget);
  29. typedef void (*XmDSMStartUpdateProc)
  30.     (XmDropSiteManagerObject, Widget);
  31. typedef void (*XmDSMRetrieveInfoProc)
  32.     (XmDropSiteManagerObject, Widget, ArgList, Cardinal);
  33. typedef void (*XmDSMUpdateInfoProc)
  34.     (XmDropSiteManagerObject, Widget, ArgList, Cardinal);
  35. typedef void (*XmDSMEndUpdateProc)
  36.     (XmDropSiteManagerObject, Widget);
  37. typedef void (*XmDSMUpdateProc)
  38.     (XmDropSiteManagerObject, XtPointer, XtPointer);
  39. typedef void (*XmDSMProcessMotionProc)
  40.     (XmDropSiteManagerObject, XtPointer, XtPointer);
  41. typedef void (*XmDSMProcessDropProc)
  42.     (XmDropSiteManagerObject, XtPointer, XtPointer);
  43. typedef void (*XmDSMOperationChangedProc)
  44.     (XmDropSiteManagerObject, XtPointer, XtPointer);
  45. typedef void (*XmDSMChangeRootProc)
  46.     (XmDropSiteManagerObject, XtPointer, XtPointer);
  47. typedef void (*XmDSMInsertInfoProc)
  48.     (XmDropSiteManagerObject, XtPointer, XtPointer);
  49. typedef void (*XmDSMRemoveInfoProc)
  50.     (XmDropSiteManagerObject, XtPointer);
  51. typedef void (*XmDSMSyncTreeProc)
  52.     (XmDropSiteManagerObject, Widget);
  53. typedef int  (*XmDSMGetTreeFromDSMProc)
  54.     (XmDropSiteManagerObject, Widget, XtPointer);
  55. typedef void (*XmDSMCreateDSInfoTable)
  56.     (XmDropSiteManagerObject);
  57. typedef void (*XmDSMDestroyDSInfoTable)
  58.     (XmDropSiteManagerObject);
  59. typedef void (*XmDSMRegisterInfoProc)
  60.     (XmDropSiteManagerObject, Widget, XtPointer);
  61. typedef XtPointer (*XmDSMWidgetToInfoProc)
  62.     (XmDropSiteManagerObject, Widget);
  63. typedef void (*XmDSMUnregisterInfoProc)
  64.     (XmDropSiteManagerObject, XtPointer);
  65.  
  66. typedef struct {
  67.     XmDSMCreateInfoProc        createInfo;
  68.     XmDSMDestroyInfoProc    destroyInfo;
  69.     XmDSMStartUpdateProc    startUpdate;
  70.     XmDSMRetrieveInfoProc    retrieveInfo;
  71.     XmDSMUpdateInfoProc        updateInfo;
  72.     XmDSMEndUpdateProc        endUpdate;
  73.     
  74.     /* Used by DragController Object */
  75.     
  76.     XmDSMUpdateProc        updateDSM;
  77.     
  78.     /* Used by update proc */
  79.     
  80.     XmDSMProcessMotionProc    processMotion;
  81.     XmDSMProcessDropProc    processDrop;
  82.     XmDSMOperationChangedProc    operationChanged;
  83.     XmDSMChangeRootProc        changeRoot;
  84.     
  85.     /* Used to manage DropSites */
  86.     
  87.     XmDSMInsertInfoProc        insertInfo;
  88.     /* Need a get and a put function for update? */
  89.     XmDSMRemoveInfoProc        removeInfo;
  90.  
  91.     /* Used to manage the pre-register information */
  92.  
  93.     XmDSMSyncTreeProc        syncTree;
  94.     XmDSMGetTreeFromDSMProc    getTreeFromDSM;
  95.     
  96.     /* Used to hash between widgets and info */
  97.     
  98.     XmDSMCreateDSInfoTable    createTable;
  99.     XmDSMDestroyDSInfoTable     destroyTable;
  100.     XmDSMRegisterInfoProc    registerInfo;
  101.     XmDSMWidgetToInfoProc    widgetToInfo;
  102.     XmDSMUnregisterInfoProc     unregisterInfo;
  103.     
  104.     XtPointer            extension;
  105.  
  106. #ifdef _SGIMOTIF
  107.     XtPointer _SG_vendorExtension;
  108. #endif    
  109. } XmDropSiteManagerClassPart;
  110.  
  111. /*  Full class record declaration for dropSite class  */
  112.  
  113. typedef struct _XmDropSiteManagerClassRec{
  114.     ObjectClassPart        object_class;
  115.     XmDropSiteManagerClassPart        dropManager_class;
  116. } XmDropSiteManagerClassRec;
  117.  
  118. externalref XmDropSiteManagerClassRec     xmDropSiteManagerClassRec;
  119.  
  120. /* Macros for calling methods */
  121.  
  122. #define DSMCreateInfo(dsm, widget, args, numArgs) \
  123.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  124.         dropManager_class.createInfo) \
  125.         ((dsm), (widget), (args), (numArgs))
  126.  
  127. #define DSMDestroyInfo(dsm, widget) \
  128.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  129.         dropManager_class.destroyInfo) \
  130.         ((dsm), (widget))
  131.  
  132. #define DSMStartUpdate(dsm, widget) \
  133.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  134.         dropManager_class.startUpdate) \
  135.         ((dsm), (widget))
  136.  
  137. #define DSMRetrieveInfo(dsm, widget, args, numArgs) \
  138.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  139.         dropManager_class.retrieveInfo) \
  140.         ((dsm), (widget), (args), (numArgs))
  141.  
  142. #define DSMUpdateInfo(dsm, widget, args, numArgs) \
  143.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  144.         dropManager_class.updateInfo) \
  145.         ((dsm), (widget), (args), (numArgs))
  146.  
  147. #define DSMEndUpdate(dsm, widget) \
  148.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  149.         dropManager_class.endUpdate) \
  150.         ((dsm), (widget))
  151.  
  152. #define DSMUpdate(dsm, clientData, callData) \
  153.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  154.         dropManager_class.updateDSM) \
  155.         ((dsm), (clientData), (callData))
  156.  
  157. #define DSMProcessMotion(dsm, clientData, callData) \
  158.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  159.         dropManager_class.processMotion) \
  160.         ((dsm), (clientData), (callData))
  161.  
  162. #define DSMProcessDrop(dsm, clientData, callData) \
  163.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  164.         dropManager_class.processDrop) \
  165.         ((dsm),(clientData), (callData))
  166.  
  167. #define DSMOperationChanged(dsm, clientData, callData) \
  168.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  169.         dropManager_class.operationChanged) \
  170.         ((dsm),(clientData), (callData))
  171.  
  172. #define DSMChangeRoot(dsm, clientData, callData) \
  173.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  174.         dropManager_class.changeRoot) \
  175.         ((dsm), (clientData), (callData))
  176.  
  177. #define DSMInsertInfo(dsm, info, call_data) \
  178.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  179.         dropManager_class.insertInfo) \
  180.         ((dsm), (info), (call_data))
  181.  
  182. #define DSMRemoveInfo(dsm, info) \
  183.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  184.         dropManager_class.removeInfo) \
  185.         ((dsm), (info))
  186.  
  187. #define DSMSyncTree(dsm, shell) \
  188.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  189.         dropManager_class.syncTree) \
  190.         ((dsm), (shell))
  191.  
  192. #define DSMGetTreeFromDSM(dsm, shell, dataPtr) \
  193.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  194.         dropManager_class.getTreeFromDSM) \
  195.         ((dsm), (shell), (dataPtr))
  196.  
  197. #define DSMCreateTable(dsm) \
  198.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  199.         dropManager_class.createTable) \
  200.         ((dsm))
  201.  
  202. #define DSMDestroyTable(dsm) \
  203.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  204.         dropManager_class.destroyTable) \
  205.         ((dsm))
  206.  
  207. #define DSMRegisterInfo(dsm, widget, info) \
  208.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  209.         dropManager_class.registerInfo) \
  210.         ((dsm), (widget), (info))
  211.  
  212. #define DSMWidgetToInfo(dsm, widget) \
  213.     (XtPointer) ((((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  214.         dropManager_class.widgetToInfo) \
  215.         ((dsm), (widget)))
  216.  
  217. #define DSMUnregisterInfo(dsm, info) \
  218.     (((XmDropSiteManagerObjectClass) XtClass(dsm))-> \
  219.         dropManager_class.unregisterInfo) \
  220.           ((dsm), (info))
  221.  
  222. /* Internal update struct */
  223.  
  224. typedef struct __XmDropSiteUpdateInfoRec {
  225.   XmDropSiteManagerObject        dsm;
  226.   Widget                refWidget;
  227.   struct __XmDropSiteUpdateInfoRec    *next;
  228. } _XmDropSiteUpdateInfoRec, *_XmDropSiteUpdateInfo;
  229.  
  230. /* DropSiteManager instance record */
  231.  
  232. typedef struct _XmDropSiteManagerPart{
  233.     XtCallbackProc    notifyProc;
  234.     XtCallbackProc    treeUpdateProc;
  235.     XtPointer        client_data;
  236.     XtPointer        dragUnderData;
  237.     XtPointer        curInfo;
  238.     Time        curTime;
  239.     Position        curX, curY, oldX, oldY;
  240.     unsigned char    curDropSiteStatus;
  241.     Widget        curDragContext;
  242.     Boolean        curAnimate;
  243.     unsigned char    curOperations;
  244.     unsigned char    curOperation;
  245.     XmRegion        curAncestorClipRegion;
  246.     XmRegion        newAncestorClipRegion;
  247.     XtPointer        dsTable;
  248.     XtPointer        dsRoot;
  249.     Position        rootX, rootY;
  250.     Dimension        rootW, rootH;
  251.     XtPointer        clipperList;
  252.     _XmDropSiteUpdateInfo    updateInfo;
  253.  
  254. #ifdef _SGIMOTIF
  255.     XtPointer _SG_vendorExtension;
  256. #endif    
  257. } XmDropSiteManagerPart, *XmDropSiteManagerPartPtr;
  258.  
  259. /* Full instance record declaration */
  260.  
  261. typedef struct _XmDropSiteManagerRec{
  262.     ObjectPart            object;
  263.     XmDropSiteManagerPart    dropManager;
  264. } XmDropSiteManagerRec;
  265.  
  266. #ifdef __cplusplus
  267. }  /* Close scope of 'extern "C"' declaration which encloses file. */
  268. #endif
  269.  
  270. #endif /* _XmDropSMgrP_h */
  271.